//////////////////////////////////////////////////////////////////////////

#include <Render.h>

//////////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////////

NAMESPACE_BEGIN(Render)

//////////////////////////////////////////////////////////////////////////

	Clear::Clear(U32 flags, const Vector4&color, F32 depth) 
	{
		GUARD(Clear::Clear);

		mFlags = flags;
		mColor = color;		
		mDepth = depth;
		
		UNGUARD;
	}

	Clear::~Clear() 
	{
		GUARD(Clear::~Clear);

		UNGUARD;
	}

	//////////////////////////////////////////////////////////////////////////

	/*
	====================
	operator
	====================
	*/
	VOID Clear::operator() (Context*rc)
	{
		GUARD(Clear::operator());	

		// clear the color
		if(mFlags & CT_COLOR) glClearColor(mColor[0], mColor[1], mColor[2], mColor[3]);

		// clear the depth
		if(mFlags & CT_DEPTH) glClearDepthf(mDepth);

		glClear(mFlags);

		UNGUARD;
	}

//////////////////////////////////////////////////////////////////////////

NAMESPACE_END

//////////////////////////////////////////////////////////////////////////
